<script>
	import { request } from '@/utils/request.js'
	export default {
		onLaunch: function() {
			console.log('App Launch')
			this.checkLogin()
			
		},
		 methods: {
		    // 检查登录状态
		    checkLogin() {
				console.log(121111)
		      const token = uni.getStorageSync('token')
		      if (token) {
		        // 未登录，跳转到登录页或直接登录
		       uni.switchTab({
		       	url:"/pages/index/index"
		       })
		      }else{
				  this.wxLogin()
			  }
		    },
		    // 微信登录
		    wxLogin() {
		      uni.login({
		        provider: 'weixin',
		        success: (loginRes) => {
		          if (loginRes.code) {
		            // 获取到临时登录凭证，发送到后端
		            this.code2Session(loginRes.code)
		          } else {
		            console.error('登录失败！' + loginRes.errMsg)
		            uni.showToast({
		              title: '登录失败，请重试',
		              icon: 'none'
		            })
		          }
		        },
		        fail: (err) => {
		          console.error('uni.login失败:', err)
		          uni.showModal({
		            title: '提示',
		            content: '无法获取微信登录权限，请检查设置',
		            showCancel: false
		          })
		        }
		      })
		    },
		    
		    // 发送code到后端换取token
		    code2Session(code) {
		      request({
		        url: 'login/info',
		        method: 'get',
		        data: { js_code:code }
		      }).then(res => {
				  console.log(res)
		        if (res.status === 200 && res.data.openid) {
		          // 登录成功，保存token
		          uni.setStorageSync('openid', res.data.openid)
		          uni.setStorageSync('userInfo', res.data)
				  if(res.data.token){
					  uni.setStorageSync('token', res.data.token)
					  uni.setStorageSync('userInfo', res.data);
					  uni.switchTab({
					  	url:"/pages/index/index"
					  })
					  uni.$emit('userLoginSuccess')
				  }else{
					  uni.redirectTo({
					  	url:"/pages/login/login"
					  })
				  }
		          // 触发登录成功事件，通知其他页面
		        } else {
		          // console.error('登录接口错误:', res.msg)
		          // uni.showToast({
		          //   title: res.msg || '登录失败',
		          //   icon: 'none'
		          // })
		        }
		      }).catch(err => {
		        console.error('登录请求失败:', err)
		        uni.showToast({
		          title: '网络请求失败，请重试',
		          icon: 'none'
		        })
		      })
		    },
		    
		    // 验证token有效性
		    verifyToken(token) {
		      request({
		        url: '/api/auth/verify',
		        method: 'POST',
		        data: { token }
		      }).then(res => {
		        if (res.code !== 0) {
		          // token无效，重新登录
		          uni.removeStorageSync('token')
		          this.wxLogin()
		        }
		      }).catch(() => {
		        // 验证失败，重新登录
		        uni.removeStorageSync('token')
		        this.wxLogin()
		      })
		    }
		  },
		onShow: function() {
			console.log('App Show')
		},
		onHide: function() {
			console.log('App Hide')
		}
	}
</script>

<style>
	/*每个页面公共css */
</style>
